/**
 * 
 * @param {type} msg
 * @param {type} options
 * @returns {Boolean}
 * 
 * so sanh game
 * thay doi game display name
 * quan ly tab
 * 
 */
function showAlert(msg, options) {
    if (!msg)
        return false;
    var modal = $('#pageAlertModal'),
        onOk = options.onOk ? options.onOk : null;
    if (modal.length === 0) {
        var html = '<div id="pageAlertModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="pageAlertModal" aria-hidden="true">\
                        <div class="modal-dialog">\
                            <div class="modal-content">\
                                <div class="modal-header">\
                                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>\
                                    <h3 id="confirmLable">Thông báo</h3>\
                                </div>\
                                <div class="modal-body"></div>\
                                <div class="modal-footer">\
                                    <a id="btnAlert" class="button sButton bMuddy" href="#" data-dismiss="modal" aria-hidden="true">Đóng</a>\
                                </div>\
                             </div>\
                         </div>\
                    </div>';
        $('body').append(html);
    }
    $('#pageAlertModal').find('.modal-body').html('<p>' + msg + '</p>');
    $('#pageAlertModal').modal();
    $('#pageAlertModal #btnAlert').click(function(param) {
        if ($.isFunction(onOk)) {
            onOk(param);
        } else {
            hideConfirm();
        }
    });
    $('#pageAlertModal').on('hidden.bs.modal', function(param) {
        $('#pageAlertModal').remove();
    });
    return false;
}

function hideAlert() {
    $('#pageAlertModal').modal('hide');
}

function showConfirm(options) {
    var title = options.title ? options.title : 'Thông báo',
        msg = options.msg ? options.msg : '',
        noBt = options.noBt ? options.noBt : 'Đóng',
        yesBt = options.yesBt ? options.yesBt : 'Đồng ý',
        warning = options.warning ? '<p class="text-warning" id="pageConfirmModalWranning" align="left">' + options.warning + '</p>' : '',
        onYes = options.onYes ? options.onYes : null,
        onNo = options.onNo ? options.onNo : null,
        param = options.param ? options.param : null,
        afterShow = options.afterShow ? options.afterShow : null;

    var modal = $('#pageConfirmModal');
    if (modal.length === 0) {
        var html = '<div id="pageConfirmModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="confirmLable" aria-hidden="true">\
                        <div class="modal-dialog">\
                           <div class="modal-content">\
                               <div class="modal-header">\
                                   <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>\
                                   <h3 id="confirmLable">' + title + '</h3>\
                               </div>\
                               <div class="modal-body">' + msg + '</div>\
                               <div class="modal-footer">\
                                   ' + warning + '\
                                   <a class="btn btn-mini" href="#" data-dismiss="modal" aria-hidden="true">' + noBt + '</a>\
                                   <a id="confirmOnYes" class="btn btn-mini btn-danger deleteUser" href="#">' + yesBt + '</a>\
                               </div>\
                            </div>\
                        </div>\
                    </div>';
        $('body').append(html);
        $.isFunction(afterShow) && afterShow(param);
    }
    $('#pageConfirmModal').modal('show');
    $('#pageConfirmModal #confirmOnYes').click(function() {
        if ($.isFunction(onYes)) {
            onYes(param);
        } else {
            hideConfirm();
        }
    });
    $('#pageConfirmModal').on('hidden.bs.modal', function() {
        $.isFunction(onNo) && onNo(param);
        $('#pageConfirmModal').remove();
    });
}

function hideConfirm() {
    $('#pageConfirmModal').modal('hide');
}

function pad(str, max) {
    str = str + '';
    return str.length < max ? pad("0" + str, max) : str;
}

function numberWithCommas(x) {
    return !x || x.length < 3 ? x : x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

function componentToHex(c) {
    var hex = c.toString(16);
    return hex.length == 1 ? "0" + hex : hex;
}

function rgbToHex(r, g, b) {
    return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
}

function initDateRange(selector, crtDay) {
    $(selector).daterangepicker({
        startDate: moment(),
        endDate: moment(),
        minDate: '01-01-2013',
        maxDate: '31-12-2020',
        dateLimit: {days: 30},
        showDropdowns: true,
        showWeekNumbers: true,
        timePicker: false,
        timePickerIncrement: 1,
        timePicker12Hour: false,
        ranges: {
            'Hôm nay': [moment(), moment()],
            'Ngày hôm qua': [moment().subtract('days', 1), moment().subtract('days', 1)],
            '7 ngày gần nhất': [moment().subtract('days', 6), moment()],
            '30 ngày gần nhất': [moment().subtract('days', 29), moment()],
            'Tháng này': [moment().startOf('month'), moment().endOf('month')],
            'Tháng trước': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]
        },
        opens: 'left',
        buttonClasses: ['btn btn-default'],
        applyClass: 'btn-small btn-primary',
        cancelClass: 'btn-small',
        format: 'dd-MM-YYYY',
        separator: ' đến ',
        locale: {
            applyLabel: 'Chọn',
            fromLabel: 'Từ',
            toLabel: 'Đến',
            weekLabel: 'W',
            customRangeLabel: 'Tuỳ chọn',
            daysOfWeek: moment()._lang._weekdaysMin.slice(),
            monthNames: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],
            firstDay: 1
        }
    }, function(start, end) {
        start = start.format('YYYY-MM-DD');
        end = end.format('YYYY-MM-DD');
        var html = '<i class="text-primary iStartDate">' + start + '</i>';
        if (start != end) {
            html += ' &nbsp;&nbsp;đến&nbsp;&nbsp; <i class="text-primary iEndDate">' + end + '</i>';
        } else {
            html += '<i class="text-primary iEndDate"></i>';
        }
        $(selector).find('span').html(html);
    });
    //Set the initial state of the picker label
    var crt = !crtDay ? moment().format('YYYY-MM-DD') : crtDay,
        html = '<i class="text-primary iStartDate">' + crt + '</i>';
    $(selector).find('span').html(html);
}

function initDatePicker(selector) {
    $(selector).datepicker({
        format: 'yyyy-mm-dd',
        autoclose: true,
        todayHighlight: true,
        language: "vi"
    });
}

function initWysiwyg() {
    tinymce.init({
        selector: "textarea.wysiwyg",
        height: 250,
        plugins: [
            "advlist autolink anchor lists link image preview ",
            "searchreplace code fullscreen",
            "media table contextmenu paste"
        ],
        toolbar: "bold italic | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent | link image"
    });
}